package com.gufe.vo.adminPreReserve;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PreReserveMemberDetialVO {

    private Integer userId;//关联四张信息表
    private String name; // 姓名
    private Integer gender; // 性别 (1: 男, 2: 女)
    private String idCard; // 身份证号码
    private String politicalAffiliation; // 政治面貌
    private String profilePicture; // 个人头像
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate; // 出生日期
    private String nationality; // 民族
    private Integer maritalStatus; // 婚姻状况 (1: 未婚, 2: 已婚)
    private String religiousAffiliation; // 宗教信仰
    private String nativePlace; // 籍贯
    private String homeAddress; // 家庭住址
    private String mailingAddress; // 邮寄地址
    private String college; // 所在学院
    private String major; // 所学专业
    private String studentId; // 学生ID
    private Integer scienceOrHumanities; // 理科或文科 (1: 理科, 2: 文科)
    private Integer grade; // 年级
    private String className; // 班级名称
    private String telephone; // 联系方式
    private String qq; // QQ号
    private Double highSchoolPhysicalGrade; // 高中体育成绩
    private Double universityPhysicalGrade; // 大学体育成绩
    private String professionalCertificates; // 专业证书
    private String classPosition; // 班级职务
    private String clubName; // 所属社团
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate clubJoinDate; // 加入社团时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate clubLeaveDate; // 离开社团时间
    private String highSchoolName; // 高中名称
    private String highSchoolAddress; // 高中地址
    private Integer highSchoolSubjectType; // 高中学科类型 理科或文科 (1: 理科, 2: 文科)

    /*军事俱乐部信息*/
    private Integer isMilitaryClubMember; // 是否为军事俱乐部成员 (1: 是, 0: 否)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate militaryClubJoinDate; // 军事俱乐部加入日期
    private String militaryClubName; // 军事俱乐部名称
    private String militaryClubPosition; // 军事俱乐部职务
    private Double height; // 身高 (单位: 米)
    private Double weight; // 体重 (单位: 千克)
    private String vision; // 视力
    private Integer hasMedicalHistory; // 是否有病史 (1: 有, 0: 没有)
    private Integer physicalCondition; // 体能状况 (1: 良好, 2: 一般, 3: 较差)
    private String psychologicalInterview; // 心理面试
    private Integer hasMilitaryTraining; // 是否接受过军事训练 (1: 是, 0: 否)
    private Integer militaryTrainingDuration; // 军事训练时长 (单位: 天)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate militaryClubLeaveDate; // 军事俱乐部离开日期
    private String militaryClubLeaveDevelop; // 离开军事俱乐部发展情况


    /*服役信息*/
    private Integer isServedInMilitary; // 是否服过兵役 (1: 是, 0: 否)
    private Integer militaryBranch; // 军种
    private String unitNumber; // 部队编号
    private String rankname; // 军衔
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate firstEnlistmentDate; // 初次入伍日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate enlistmentDate; // 入伍日期
    private String enlistmentPlace; // 入伍地点
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate dischargeDate; // 退役日期
    private String militarySpecialty; // 军事专业
    private String militaryPosition; // 军事职务
    private String awards; // 获得奖项
    private Integer isReservedMilitary; // 是否有预备役
    private String ReservedPosition; // 预备役职务
    private String ReservedSpecialty; // 预备役专业


    //学习经历
    private String primarySchoolName; // 小学名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate primarySchoolStartDate; // 小学开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate primarySchoolEndDate; // 小学结束日期
    private String middleSchoolName; // 初中名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate middleSchoolStartDate; // 初中开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate middleSchoolEndDate; // 初中结束日期
    //private String highSchoolName; // 高中名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate highSchoolStartDate; // 高中开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate highSchoolEndDate; // 高中结束日期
    private String universityName; // 大学名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate universityStartDate; // 大学开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate universityEndDate; // 大学结束日期


    /*预征预储信息*/
    private String militarySkillsTraining; // 军事技能训练情况
    private String politicalTheoryLearningSituation; // 政治理论学习情况
    private String physicalFitnessTraining; // 体适能训练情况
    private String physicalExamination; // 体检检查情况
    private String psychologicalTestSituation; // 心理测验情况
    private String images; // 相关图片，存储图片链接或文件路径


}
